iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 13
1

應該有許多人像我一樣,自學關於IT方面所需的知識,從作業系統、應用軟體到程式設計。接著,可能跟我一樣,不是很了解某個程式設計的演進、專有名詞或搞不清楚背後運作的原理,也不清楚什麼是DOM、怎麼宣告才是物件,怎麼宣告Function,或,當程式開始執行時,到底是先執行什麼,後執行什麼,某個變數,要宣告為全域變數或區域變數,這個明明看起來是數字,可是卻被判定為字串...

這種時候,可能有人就放棄了,關於自學這件事。

到目前,每次需要用到Javascript、JQuery或PHP時,都要花好多時間,去處理自己在撰寫時,所產生的錯誤。錯誤如果找到,那就繼續寫下去,找不到就卡住,不然就是全部砍掉,再重來一次...重來之後,發現問題一樣存在並且和重來之前的問題一樣。

就好像,Windows不能上網,用Ghost還原之後,還是不能上網,最後發現是網路線沒接...

接下來要介紹的是,自己在尋找自己的程式Bug時,或是解決SI環境時,所用的思緒,供參考。

這兩張照片,是今年(2016)7月10幾號,在台東市區拍的照片,這兩張照片,是在說明,被尼伯特颱風的17級陣風,掃過的台東市區,要能順利或快速,找到自己產生的Bug或是SI環境異常時,看懂這兩張照片,會很有幫助。

2016年7月10號之後,,當各家新聞台,在播報台東市區,因颱風關係,商家招牌被破壞的很嚴重時,真正的畫面,是像這樣。

第一張,我在台東市區的中華路往北所拍攝,這一張可能看不出那裡怪。
http://ithelp.ithome.com.tw/upload/images/20161213/20006132n3gvv0JZum.jpg

第二張,第一張往前約十公尺後右轉,(中華路往北,右轉正氣路之後)...有沒有發現,有沒有什麼地方怪怪的。
http://ithelp.ithome.com.tw/upload/images/20161213/20006132Z64PVh8dSs.jpg

同樣是在台東市區,同樣的17級風。所以...同樣版本的OS安裝在同樣的主機上面時,每台主機都有接網路線,每條線都連到同一台Switch,有的主機網路卡的燈號不亮,有的主機網路卡登號正常。這時候,怎麼處理比較快?

再來像是,我從Google MAP Javascript API 複製範例到跟Cordova無關的一般的HTML檔,可以正常使用。
結果,放到Cordova裡面,有異常...
是那個Google MAP Javascript API造成異常? 還是我自己寫的部份,造成異常?

這個錯誤訊息,困擾我很久...
invalidValueError: in property origin: not a string; and not a LatLng or LatLngLiteral: not an Object; and not an Object
這個錯誤訊息,困擾我更久
 TypeError: onSuccess is not a function

上述的兩個錯誤訊息,都是在測試Google MAP Javascript API,所遇到的。但,最後發現,跟Google MAP Javascript API無關...

下面,是遇到錯誤和正常的比較,供參考。

//這一段,和下一段,有什麼不同
function onDeviceReady() {
    if ($('input[name=r_start]:checked').val() == 1) {
        navigator.geolocation.getCurrentPosition(getSuccess, getError, getoptions);
        var getSuccess = function (getposition) {
            getlat = getposition.coords.latitude;
            getlon = getposition.coords.longitude;
            myCenter = new google.maps.LatLng(getlat, getlon);
            alert('a');
        }
    } else {
        myCenter = new google.maps.LatLng(23.0973591, 121.2023173);
        alert('b');
    }
}


//這一段,和上一段有什麼不同

 $("#show_tree").on("click", function initMap() {
        if ($('input[name=r_start]:checked').val() == 1) {
            navigator.geolocation.getCurrentPosition(getSuccess, getError, getoptions);
            var getSuccess = function (getposition) {
                getlat = getposition.coords.latitude;
                getlon = getposition.coords.longitude;
                myCenter = new google.maps.LatLng(getlat, getlon);
                alert('a');
            }
        } else {
            myCenter = new google.maps.LatLng(23.0973591, 121.2023173);
            alert('b');
        }
 });

再來是這個

//這一段,和下一段,有什麼不同
function onDeviceReady() {
    $("#show_tree").on("click", function initMap() {
        if ($('input[name=r_start]:checked').val() == 1) {
            getCenter();  
        } else {
            myCenter = new google.maps.LatLng(22.7969679, 121.121909);
            getmap(myCenter);
        }
    });
}
//這一段,和上一段有什麼不同
  $("#show_tree").on("click", function initMap() {
        if ($('input[name=r_start]:checked').val() == 1) {
            navigator.geolocation.getCurrentPosition(getSuccess, getError, getoptions);
            var getSuccess = function (getposition) {
                getlat = getposition.coords.latitude;
                getlon = getposition.coords.longitude;
                myCenter = new google.maps.LatLng(getlat, getlon);
                alert('a');
            }
        } else {
            myCenter = new google.maps.LatLng(22.7969679, 121.121909);
            alert('b');
        }

最後是這個

//這一段,和下一段,有什麼不同
    var r_start; //開始的位置
    var r_end;  //結束的位置
    var getlat;
    var getlon;
    var myCenter;
var map;
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer;   
document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
   $("#show_tree").on("click", function initMap() {
        if ($('input[name=r_start]:checked').val() == 1) {
            getCenter();  
        } else {
            myCenter = new google.maps.LatLng(22.7969679, 121.121909);
            getmap(myCenter);
        }
    });
 
//這一段,和上一段有什麼不同
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
var r_start; //開始的位置
var r_end;  //結束的位置
var getlat;
var getlon;
var myCenter;
var map;
var directionsService = new google.maps.DirectionsService;
var directionsDisplay = new google.maps.DirectionsRenderer;
}

上面六段JS碼,是這幾天,一直在改的,改到最後覺得,基本觀念,很重要...如果像我這樣一知半解...就要花好多時間,在錯誤中找原因...

(待)

2016/12/13 Sunallen


上一篇
{"12":"GEO&GMAP(定點導航)"}
下一篇
{"14":"GEO+Gmap+waypoints(上)"}
系列文
我的網站、您的手機、它的Cordova、誰的第三方32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言